package com.fowo.api.model.sell.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 订单列表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SellOrderImportPo {

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String sidShopName;

  @ExcelIgnore
  @Schema(title = "店铺")
  private String sid;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String countryName;

  @ExcelIgnore
  @Schema(title = "国家")
  private String country;

  /** 订单号 */
  @ExcelProperty("订单号")
  @Size(max = 50, message = "订单号长度不能超过50")
  private String amazonOrderId;

  /** 买家姓名 */
  @ExcelProperty("买家姓名")
  @Size(max = 50, message = "买家姓名长度不能超过50")
  private String buyerName;

  /** 买家邮箱 */
  @ExcelProperty("买家邮箱")
  @Size(max = 50, message = "买家邮箱长度不能超过50")
  private String buyerEmail;

  /** 订单总额 */
  @ExcelProperty("订单总额")
  @Size(max = 50, message = "订单总额长度不能超过50")
  private String orderTotalAmount;

  /** 订单金额币种 */
  @ExcelProperty("订单金额币种")
  private String currency;

  /** 订单金额币种符号 */
  @ExcelProperty("订单金额币种符号")
  @Size(max = 50, message = "订单金额币种符号长度不能超过50")
  private String icon;

  /** 订购时间 */
  @ExcelProperty("订购时间")
  @DateTimeString(message = "订购时间不是有效的时间日期格式")
  private String purchaseDateLocal;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 请求评论状态 */
  @ExcelProperty("请求评论状态")
  private String requestReviewStatus;

  /** 状态 */
  @ExcelProperty("状态")
  private String orderStatus;

  /** 配送方式 */
  @ExcelProperty("配送方式")
  private String fulfillmentChannel;

  /** 是否为推广订单 */
  @ExcelProperty("是否为推广订单")
  @BooleanString(message = "是否为推广订单格式不正确，请使用“是”，“否”")
  private String isAssessed;

  /** 是否多渠道订单 */
  @ExcelProperty("是否多渠道订单")
  @BooleanString(message = "是否多渠道订单格式不正确，请使用“是”，“否”")
  private String isMcfOrder;

  /** 是否为退货订单 */
  @ExcelProperty("是否为退货订单")
  @BooleanString(message = "是否为退货订单格式不正确，请使用“是”，“否”")
  private String isReturnOrder;

  /** 是否已换货 */
  @ExcelProperty("是否已换货")
  @BooleanString(message = "是否已换货格式不正确，请使用“是”，“否”")
  private String isReplacedOrder;

  /** 是否为换货订单 */
  @ExcelProperty("是否为换货订单")
  @BooleanString(message = "是否为换货订单格式不正确，请使用“是”，“否”")
  private String isReplacementOrder;

  /** 订单更新时间 */
  @ExcelProperty("订单更新时间")
  @DateTimeString(message = "订单更新时间不是有效的时间日期格式")
  private String lastUpdateDate;

  /** 付款时间 */
  @ExcelProperty("付款时间")
  @DateTimeString(message = "付款时间不是有效的时间日期格式")
  private String postedDate;

  /** 用户收货地址 */
  @ExcelProperty("用户收货地址")
  @Size(max = 50, message = "用户收货地址长度不能超过50")
  private String address;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String postalCode;

  /** 用户收货名称 */
  @ExcelProperty("用户收货名称")
  @Size(max = 50, message = "用户收货名称长度不能超过50")
  private String name;

  /** 手机号 */
  @ExcelProperty("手机号")
  @Size(max = 50, message = "手机号长度不能超过50")
  private String phone;

  /** 发货地址 */
  @ExcelProperty("发货地址")
  @Size(max = 50, message = "发货地址长度不能超过50")
  private String shippingAddress;

  /** 是否为B2B订单 */
  @ExcelProperty("是否为B2B订单")
  @BooleanString(message = "是否为B2B订单格式不正确，请使用“是”，“否”")
  private String isBusinessOrder;

  /** 是否prime订单 */
  @ExcelProperty("是否prime订单")
  @BooleanString(message = "是否prime订单格式不正确，请使用“是”，“否”")
  private String isPrime;

  /** 是否优先配送订单 */
  @ExcelProperty("是否优先配送订单")
  @BooleanString(message = "是否优先配送订单格式不正确，请使用“是”，“否”")
  private String isPremiumOrder;

  /** 是否促销订单 */
  @ExcelProperty("是否促销订单")
  @BooleanString(message = "是否促销订单格式不正确，请使用“是”，“否”")
  private String isPromotion;

  /** 费用是否含税 */
  @ExcelProperty("费用是否含税")
  @BooleanString(message = "费用是否含税格式不正确，请使用“是”，“否”")
  private String taxesIncluded;
}
